﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;

namespace Negocio.Clases_BL
{
    public class clsCargarExcelBL
    {
        public static DataTable dttLeerDatosDesdeExcel(string sNombreArchivo, string sNombreHoja)
        {
            try
            {
                OleDbConnection oConnXLS = new OleDbConnection();        //Crea una nueva conexion al excel
                OleDbCommand oDBCmdXLS = new OleDbCommand();             //objeto command, para excel
                OleDbDataAdapter oDBDaXLS = new OleDbDataAdapter();      //objeto dataadapter para el excel
                DataTable dttDatosXLS = new DataTable();                  //contiene TODOS los datos del Excel
                //oConnXLS.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sNombreArchivo + ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";

                //string sConexionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sNombreArchivo + @;Extended Properties="Excel 8.0;HDR=No;IMEX=1";
                //oConnXLS.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sNombreArchivo + ";Extended Properties=Excel 8.0;";

               string sConexionString="";
               sConexionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
               sConexionString += sNombreArchivo;
               sConexionString += ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
                
                oConnXLS.ConnectionString = sConexionString;
                oConnXLS.Open();
                oDBCmdXLS.CommandText = "Select * From [" + sNombreHoja + "$]";
                oDBCmdXLS.Connection = oConnXLS;
                oDBDaXLS.SelectCommand = oDBCmdXLS;
                oDBDaXLS.Fill(dttDatosXLS);
                oConnXLS.Close();
                if (dttDatosXLS.Rows.Count > 0)
                {
                    return dttDatosXLS;
                }
                else
                {
                    return null;
                }
            }
            catch (System.IO.IOException Err0)
            {
                return null;
            }
        }
        //public static DataTable dttLeerDatosDesdeExcel(string sArchivo, string sHoja, DataTable dttFormatoExcel)
        //{
        //    Aspose.Cells.License license = new Aspose.Cells.License();
        //    license.SetLicense("Aspose.Cells.lic");
        //    Workbook workbook = new Workbook();
        //    workbook.Open(sArchivo);
        //    Worksheet worksheet = workbook.Worksheets[sHoja];
        //    int iNumeroMaximoFilas = worksheet.Cells.MaxDataRow + 1;
        //    int iNumeroMaximoColumnas = worksheet.Cells.MaxDataColumn + 1;
        //    DataTable dttAux = worksheet.Cells.ExportDataTable(0, 0, iNumeroMaximoFilas, iNumeroMaximoColumnas, false);
        //    return dttAux;

        //}

    }
}
